package com.cook.service;

import com.cook.dto.recipes.StepsDTO;
import com.cook.entity.Steps;
import com.baomidou.mybatisplus.extension.service.IService;
import com.cook.vo.recipes.StepsVO;

import java.util.List;

/**
* @author black-white spider
* @description 针对表【steps(食谱步骤表)】的数据库操作Service
* @createDate 2025-10-27 19:55:23
*/
public interface StepsService extends IService<Steps> {

    /**
     * 根据食谱ID查询步骤列表
     * @param recipeId 食谱ID
     * @return 步骤列表
     */
    List<StepsVO> getStepsByRecipeId(Long recipeId);

    /**
     * 根据步骤ID查询步骤详情
     * @param stepId 步骤ID
     * @return 步骤详情
     */
    StepsVO getStepById(Long stepId);

    /**
     * 添加步骤
     * @param stepsDTO 步骤DTO
     * @return 步骤ID
     */
    Long addStep(StepsDTO stepsDTO);

    /**
     * 批量添加步骤
     * @param stepsDTOList 步骤DTO列表
     * @return 是否成功
     */
    boolean batchAddSteps(List<StepsDTO> stepsDTOList);

    /**
     * 更新步骤
     * @param stepsDTO 步骤DTO
     * @return 是否成功
     */
    boolean updateStep(StepsDTO stepsDTO);

    /**
     * 删除步骤
     * @param stepId 步骤ID
     * @return 是否成功
     */
    boolean deleteStep(Long stepId);

    /**
     * 根据食谱ID删除所有步骤
     * @param recipeId 食谱ID
     * @return 是否成功
     */
    boolean deleteStepsByRecipeId(Long recipeId);

    /**
     * 重新排序步骤
     * @param recipeId 食谱ID
     * @return 是否成功
     */
    boolean reorderSteps(Long recipeId);

}
